第一部分 ARM LINUX 系统移植............................................................................................... 12第 1 章 嵌入式系统开发入门......................................................................................................... 131.1 嵌入式系统介绍.................................................................................................................... 131.1.1 嵌入式系统概述............................................................................................................ 131.1.2 嵌入式系统组成............................................................................................................ 151.2ARM 介绍.............................................................................................................................. 161.2.1 ARM 处理器介绍............................................................................................................ 171.2.2 ARM 处理器的选型 ........................................................................................................ 181.2.3 S3C2410 微处理器介绍.................................................................................................. 181.3ADS 集成开发环境介绍........................................................................................................ 201.3.1 ADS 软件组成................................................................................................................. 211.3.1.1 命令行开发工具......................................................................................................................211.3.1.2 GUI 开发环境..........................................................................................................................231.3.1.3 实用程序.................................................................................................................................231.3.1.4 支持的软件 .............................................................................................................................241.3.2 使用 Code Warrior IDE................................................................................................... 241.3.2.1 创建项目工程..........................................................................................................................241.3.2.2 编译和链接项目工程..............................................................................................................271.3.3 使用 AXD IDE................................................................................................................. 291.3.3.1 打开调试文件..........................................................................................................................291.3.3.2 设置断点.................................................................................................................................301.3.3.3 查看寄存器内容......................................................................................................................301.3.3.4 查看变量值 .............................................................................................................................311.4 嵌入式 LINUX 开发介绍 ........................................................................................................ 321.4.1 Linux 历史....................................................................................................................... 321.4.2 Linux 开发环境............................................................................................................... 331.4.2.1 GCC 介绍................................................................................................................................351.4.2.2 GNU Make 介绍......................................................................................................................361.4.2.3 GDB 介绍................................................................................................................................381.4.3 ARM Linux 系统开发流程............................................................................................... 411.5 LINUX 内核介绍..................................................................................................................... 431.5.1 Linux 内核目录结构 ....................................................................................................... 441.5.2 如何阅读 Linux 内核源代码.......................................................................................... 451.6 本章小节............................................................................................................................... 471.7 常见问题 ............................................................................................................................... 48第 2 章 交叉编译工具链的构建..................................................................................................... 492.1 交叉编译工具链介绍............................................................................................................ 492.2ARM LINUX 交叉编译工具链的构建..................................................................................... 492.2.1 分步构建交叉编译链...................................................................................................... 502.2.1.1 建立工作目录..........................................................................................................................502.2.1.2 建立环境变量..........................................................................................................................512.2.1.3 编译、安装 Binutils.................................................................................................................512.2.1.4 获得内核头文件......................................................................................................................522.2.1.5 编译安装 boot-trap gcc ............................................................................................................532.2.1.6 建立 glibc 库............................................................................................................................542.2.1.7 编译安装完整的 gcc................................................................................................................552.2.1.8 测试交叉编译工具链 ..............................................................................................................552.2.2 用 Crosstool 工具构建交叉工具链 ................................................................................. 552.2.2.1 准备资源文件..........................................................................................................................562.2.2.2 建立脚本文件..........................................................................................................................562.2.2.3 建立配置文件.........................................................................................................................572.2.2.4 执行脚本................................................................................................................................572.2.2.5 添加环境变量.........................................................................................................................572.3 本章小节 ............................................................................................................................... 582.4 常见问题 ............................................................................................................................... 58第 3 章 嵌入式系统的 BOOTLOADER........................................................................................ 603.1 BOOTLOADER 概述................................................................................................................. 603.2 常用的嵌入式 LINUX BOOTLOADER....................................................................................... 613.2.1 U-Boot............................................................................................................................. 613.2.2 VIVI................................................................................................................................. 613.2.3 Blob................................................................................................................................. 623.2.4 RedBoot........................................................................................................................... 623.2.5 ARMboot ......................................................................................................................... 633.2.6 DIY.................................................................................................................................. 633.3 基于 S3C2410 开发板的 BOOTLOADER 实现......................................................................... 633.3.1 S3C2410 开发板介绍...................................................................................................... 633.3.2 U-Boot 分析与移植......................................................................................................... 663.3.2.1 U-Boot Stage1 分析 .................................................................................................................663.3.2.2 U-Boot Stage2 分析 .................................................................................................................713.3.2.3 U-Boot 的移植过程.................................................................................................................723.4 基于 S3C2410 开发板自己编写 BOOTLOADER ...................................................................... 883.4.1 设计系统的启动流程..................................................................................................... 883.4.2 BootLoader 的具体实现.................................................................................................. 903.4.2.1 设置异常向量表.....................................................................................................................913.4.2.2 初始化看门狗和外围电路.......................................................................................................923.4.2.3 初始化存储器..........................................................................................................................923.4.2.4 初始化堆栈 .............................................................................................................................933.4.2.5 初始化数据区..........................................................................................................................943.4.2.6 跳转到 C 程序 Main 函数........................................................................................................963.4.2.7 Main 函数的具体实现.............................................................................................................963.5 本章小节 ............................................................................................................................... 973.6 常见问题 ............................................................................................................................... 97第 4 章 嵌入式 LINUX 内核移植.................................................................................................. 984.1 移植的基本概念.................................................................................................................... 984.2 内核移植的准备.................................................................................................................... 994.3 内核移植 ............................................................................................................................. 1004.3.1 内核配置...................................................................................................................... 1004.3.1.1 修改 Makefile ........................................................................................................................1004.3.1.2 设置 NAND Flash 分区 .........................................................................................................1014.3.1.3 配置内核选项........................................................................................................................1044.3.2 内核编译...................................................................................................................... 1084.3.2.1 清除冗余文件........................................................................................................................1084.3.2.2 编译内核映像和模块 ............................................................................................................1084.3.2.3 安装模块...............................................................................................................................1094.3.3 内核下载....................................................................................................................... 1094.4 建立 LINUX 根文件系统...................................................................................................... 1104.4.1 根文件系统的基本介绍................................................................................................ 1104.4.1.1 根文件系统的基本目录结构.................................................................................................1104.4.1.2 常见的根文件系统................................................................................................................1114.4.1.3 选择根文件系统....................................................................................................................1124.4.2 建立根文件系统........................................................................................................... 1134.4.2.1Cramfs 工具包的使用.............................................................................................................1134.2.2.2 构建 Cramfs 根文件系统.......................................................................................................1144.5 本章小节 ............................................................................................................................. 1174.6 常见问题 ............................................................................................................................. 117第二部分 ARM LINUX 设备驱动程序开发............................................................................... 119第 5 章 ARM LINUX 驱动程序开发入门 ................................................................................... 1205.1 嵌入式 LINUX 驱动程序介绍............................................................................................... 1205.1.1 驱动程序的作用........................................................................................................... 1205.1.2 Linux 设备驱动程序分类.............................................................................................. 1215.2 最简单的内核模块举例....................................................................................................... 1225.2.1 编写 Hello World 模块 ................................................................................................. 1225.2.2 编写 Hello World 模块的 Makefile ................................................................................ 1245.2.3 加载和卸载 Hello World 模块....................................................................................... 1255.3 LINUX 驱动程序开发要点.................................................................................................... 1255.3.1 内存与 I/O 端口........................................................................................................... 1255.3.1.1 内存.......................................................................................................................................1265.3.1.2 I/O 端口.................................................................................................................................1295.3.2 并发控制....................................................................................................................... 1305.3.2.1 自旋锁(Spinlocks).............................................................................................................1315.3.2.2 信号量(Semaphores).........................................................................................................1335.3.3 阻塞(Blocking)与非阻塞(Nonblocking)............................................................... 1355.3.3.1 阻塞(Blocking)与非阻塞(Nonblocking)操作................................................................1355.3.3.2 异步通知(Asynchronous Notification)...............................................................................1355.3.4 中断处理....................................................................................................................... 1365.3.4.1 Linux 中断及其相关函数 ......................................................................................................1365.3.4.2 ARM 中断处理......................................................................................................................1375.3.4.3 一个 Linux 中断相关的实例..................................................................................................1395.3.5 内核调试...................................................................................................................... 1435.3.5.1 准备内核调试环境................................................................................................................1435.3.5.2 KDB 的基本用法...................................................................................................................1445.4 本章小结 ............................................................................................................................. 1465.5 常见问题 ............................................................................................................................. 147第 6 章 字符设备驱动程序........................................................................................................... 1486.1 字符设备驱动介绍.............................................................................................................. 1486.1.1 字符设备驱动相关的重要结构..................................................................................... 1486.1.1.1 file_operations(文件操作)结构..........................................................................................1486.1.1.2 file(文件)结构...................................................................................................................1516.1.1.3 inode(节点)结构 ...............................................................................................................1526.1.2 主、次设备号............................................................................................................... 1546.1.2.1 主、次设备号的内部表示.....................................................................................................1556.1.2.2 静态分配和释放主设备号.....................................................................................................1556.1.2.3 动态分配主设备号...............................................................................................................1566.2 字符设备驱动开发实例...................................................................................................... 1576.2.1 四线电阻式触摸屏原理................................................................................................ 1576.2.2 S3C2410 触摸屏工作原理 ............................................................................................ 1586.2.3 S3C2410 的 ADC 和触摸屏接口特殊寄存器................................................................ 1596.2.3.1 ADC 控制(ADCCON)寄存器 ...........................................................................................1596.2.3.2 ADC 触摸屏控制(ADCTSC)寄存器 ................................................................................1606.2.3.3 ADC 开始延迟(ADCDLY)寄存器....................................................................................1616.2.3.4 ADC 转化数据 (ADCDAT0) 寄存器...................................................................................1616.2.3.5 ADC 转化数据(ADCDAT1)寄存器........................................................................................1626.2.4 触摸屏驱动概要设计................................................................................................... 1626.2.4.1 触摸屏硬件接口....................................................................................................................1626.2.4.2 触摸屏驱动程序流程设计.....................................................................................................1636.2.5 触摸屏驱动程序分析.................................................................................................... 1646.2.5.1 触摸屏设备初始化................................................................................................................1656.2.5.2 触摸屏设备文件操作 ............................................................................................................1686.2.5.3 open 和 release 方法 ..............................................................................................................1686.2.5.4 read 和 poll 方法....................................................................................................................1696.2.5.5 触摸屏中断和 ADC 中断的实现..........................................................................................1706.2.6 配置和编译驱动程序.................................................................................................... 1726.2.7 测试触摸屏驱动程序.................................................................................................... 1736.2.8 触摸屏的校准............................................................................................................... 1746.3 本章小节 ............................................................................................................................. 1756.4 常见问题 ............................................................................................................................. 176第 7 章 块设备驱动程序 .............................................................................................................. 1777.1 块设备驱动介绍.................................................................................................................. 1777.1.1 块设备驱动相关的重要结构 ........................................................................................ 1777.1.1.1block_device_operations(块设备操作)结构........................................................................1777.1.1.2 gendisk 结构..........................................................................................................................1787.1.1.3 request 结构...........................................................................................................................1807.1.2 请求处理....................................................................................................................... 1827.1.2.1 request 函数...........................................................................................................................1827.1.2.2 request 函数实例 ...................................................................................................................1827.2 块设备驱动开发实例........................................................................................................... 1837.2.1 MMC/SD 介绍............................................................................................................... 1847.2.2 S3C2410 提供的 SDI 接口............................................................................................ 1867.2.3 SDI 相关的寄存器........................................................................................................ 1877.2.3.1 SDI 控制(SDICON)寄存器...............................................................................................1887.2.3.2 SDI 波特率预定标(SDIPRE)寄存器.................................................................................1887.2.3.3 SDI 命令参数(SDICARG)寄存器..........................................................................................1887.2.3.4 SDI 命令控制(SDICCON)寄存器..........................................................................................1897.2.3.5 SDI 命令状态(SDICSTA)寄存器...........................................................................................1897.2.3.6 SDI 响应(SDIRSP)寄存器.....................................................................................................1897.2.3.7 SDI 数据/占用定时器(SDIDTIMER)寄存器..........................................................................1907.2.3.8 SDI 块大小(SDIBSIZE)寄存器..............................................................................................1907.2.4 MMC/SD 驱动概要设计................................................................................................ 1917.2.4.1 MMC/SD 与主机的接口连接................................................................................................1917.2.4.2 MMC/SD 驱动框架...............................................................................................................1917.2.4.3 MMC 驱动的核心设计..........................................................................................................1937.2.5 MMC 驱动程序分析..................................................................................................... 1937.2.5.1 MMC 初始化.........................................................................................................................1937.2.5.2 open 和 release 方法 ..............................................................................................................1957.2.5.3 ioctl 方法...............................................................................................................................1967.2.5.4 MMC 驱动的 request 方法.....................................................................................................1967.2.6 S3C2410 SDI 接口驱动分析 ......................................................................................... 1987.2.6.1 SDI 初始化............................................................................................................................1997.2.6.2 SDI 接口驱动方法.................................................................................................................1997.2.7 配置和编译驱动程序.................................................................................................... 2007.3 本章小结 ............................................................................................................................. 2007.4 常见问题 ............................................................................................................................. 200第 8 章 网络设备驱动程序........................................................................................................... 2028.1 网络设备驱动介绍.............................................................................................................. 2028.1.1 网络设备驱动相关的重要结构.................................................................................... 2028.1.1.1 net_device 结构......................................................................................................................2028.1.1.2 sk_buff 结构 ..........................................................................................................................2048.1.2 常见的网络术语........................................................................................................... 2058.1.2.1 常见的网络协议....................................................................................................................2058.1.2.2 以太网介绍 ...........................................................................................................................2068.2 网络设备驱动开发实例....................................................................................................... 2078.2.1CS8900A 介绍................................................................................................................ 2078.2.1.1CS8900A 的组成部分介绍.....................................................................................................2078.2.1.2 CS8900A 的系统应用............................................................................................................2088.2.2CS8900A 网卡驱动概要设计......................................................................................... 2098.2.2.1 CS8900A 网卡接口 ...............................................................................................................2098.2.2.2 网络驱动程序的体系结构.....................................................................................................2098.2.2.3 网络驱动程序的主要功能.....................................................................................................2108.2.3 CS8900A 适配器驱动程序分析 .................................................................................... 2118.2.3.1 初始化...................................................................................................................................2118.2.3.2 open 和 stop 方法...................................................................................................................2148.2.3.3 数据发送...............................................................................................................................2168.2.3.4 数据接收...............................................................................................................................2178.3 本章小结 ............................................................................................................................. 2208.4 常见问题 ............................................................................................................................. 220第三部分 QT GUI 开发............................................................................................................... 221第 9 章 QT 概述........................................................................................................................... 2229.1 LINUX 下 GUI 介绍.............................................................................................................. 2229.1.1 Linux 桌面 GUI 系统 .................................................................................................... 2229.1.1.1 X Window 系统 .....................................................................................................................2239.1.1.2 GNOME/Gtk 和 KDE/Qt ......................................................................................................2249.1.2 嵌入式 Linux 下的 GUI 系统....................................................................................... 2269.2 QT/X11 介绍........................................................................................................................ 2279.2.1 Qt 的历史和 Qt/X11 的由来.......................................................................................... 2279.2.2 Qt/X11 的版权问题....................................................................................................... 2289.2.3 Qt/X11 及 Qt/Windows 的系统架构图对比.................................................................... 2289.2.4 Qt 的特性简介.............................................................................................................. 2289.3 QTOPIA CORE 介绍............................................................................................................... 2299.3.1 Qtopia Core 与 Qt/Embedded ........................................................................................ 2299.3.2 Qtopia Core 的体系结构............................................................................................... 2309.3.2.1 Frame Buffer(帧缓存)简介.....................................................................................................2309.3.2.2 Qtopia Core 的窗口系统........................................................................................................2319.4 本章小结............................................................................................................................. 2319.5 常见问题 ............................................................................................................................. 231第 10 章 QT/X11 初步.................................................................................................................. 23310.1 QT/X11 的安装................................................................................................................... 23310.1.1 Qt/X11 的下载及双重授权问题的说明....................................................................... 23310.1.2 Qt/X11 的安装详解..................................................................................................... 23410.2 QT 下的 HELLO WORLD ...................................................................................................... 23510.3 温度转换的小例子............................................................................................................ 23710.3.1 背景知识.................................................................................................................... 23710.3.2 Quit 按钮..................................................................................................................... 23710.3.3 摄氏温度的显示 ......................................................................................................... 24110.3.4 华氏温度的显示 ........................................................................................................ 24310.3.5 华氏温度和摄氏温度之间的转换.............................................................................. 24710.3.6 保存当前的数值 ........................................................................................................ 25110.4 本章小结........................................................................................................................... 25610.5 常见问题........................................................................................................................... 257第 11 章 QT 核心技术.................................................................................................................. 25811.1 信号(SIGNALS)和槽(SLOTS)................................................................................................ 25811.1.1 常见的 GUI 组件通信方式 ........................................................................................ 25811.1.1.1 回调函数.............................................................................................................................25811.1.1.2 面向对象的回调.................................................................................................................26011.1.2 Qt 中的信号和槽(Signals and Slots)............................................................................ 26111.1.2.1 信号和槽历史和所带来的优点...........................................................................................26111.1.2.2 信号....................................................................................................................................26111.1.2.3 槽........................................................................................................................................26211.1.2.4 信号和槽的效率.................................................................................................................26211.1.3 自定义信号和槽的小例子.......................................................................................... 26311.2 QT 对象模型....................................................................................................................... 26611.2.1 元对象系统(Meta-Object System).......................................................................... 26611.2.2 信号和槽机制的实现................................................................................................. 27211.2.2.1 用 connection()建立连接.....................................................................................................27211.2.2.2 信号的发射和槽的执行......................................................................................................27811.2.3 元对象编译器 moc ..................................................................................................... 28211.2.3.1 在 Makefile 中使用 moc......................................................................................................28211.2.3.2 moc 用法详解......................................................................................................................28211.2.3.3 moc 及信号和槽机制的局限性............................................................................................28311.3 QT 的窗口系统................................................................................................................... 28511.3.1 窗口部件之间的树型结构.......................................................................................... 28511.3.2 窗口部件的布局管理(Layout)............................................................................... 28811.4 国际化............................................................................................................................... 29111.4.1 Qt 国际化的基本步骤................................................................................................. 29111.4.1.1 程序员的工作.....................................................................................................................29111.4.1.2 语言资源管理者和翻译工作者的工作................................................................................29211.4.2 动态改变语言的小例子 ............................................................................................. 29211.4.3 一些注意事项 ............................................................................................................ 29811.5 本章小结........................................................................................................................... 29911.6 常见问题........................................................................................................................... 299第 12 章 QTOPIA CORE ............................................................................................................. 30112.1 QTOPIA CORE 的安装.......................................................................................................... 30112.2 FRAME BUFFER 和 QVFB...................................................................................................... 30212.2.1 Frame Buffer ............................................................................................................... 30212.2.2 编译 qvfb.................................................................................................................... 30412.2.3 在 qvfb 上运行 Qtopia Core 程序............................................................................... 305# ./ DIGITALCLOCK –QWS –DISPLAY QVFB:0 ..................................................................... 30612.3 移植 QT/X11 程序到 QTOPIA CORE 中............................................................................... 30712.4 轻量级的窗口系统 ............................................................................................................ 30912.5 进程间通信....................................................................................................................... 31212.6 本章小结........................................................................................................................... 31512.7 常见问题........................................................................................................................... 316附录 A:光盘内容.................................................................................................................... 317附录 B:参考文献.................................................................................................................... 317
下载_ARM嵌入式Linux系统开发从入门到精通.pdf用户还喜欢
- 18480 文章数
- 500万+ 热度
作者专栏
编辑推荐
- 淡抹u2引擎,修复内容较多,物有所值
- 界域传说·经典巨作=传世单机(一键安装)
- 丸子版本(175个传世版本大集合)
- GS版本:神话公益服务端+客户端
- 图片放大工具(放大图片不模糊)
- 剪映无限制VIP版
- 传奇世界客户端下载器,史上最全传世客户端
- 传世GS20220920商业引擎注册+登录配置器 解压密码是1
- U2官方排行榜游戏网关 支持元神,支持传家宝
- GS开战传世客户端+服务端
- (淡漠夕阳)u2引擎合区工具
- 传世GS引擎消除“你的游戏客户端版本号过旧,请及时更新”提示
- 传世一机多区双线路配置器--免密码版本
- 传世凤凰登陆器劫持修复软件
- SQLite3 for Navicat
- 传奇世界npc对话框编辑工具
- 传世GS落霞铭文服务器端
- gs_20210409引擎包+注册机(无限制)
- 传奇世界NPC对话封包查看器[支持时长版和极速版]
- 彩虹引擎传世脚本编辑工具1.7版来了,支持函数脚本翻译
评论